home *** CD-ROM | disk | FTP | other *** search
- package java.util;
-
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.io.PrintStream;
- import java.io.PrintWriter;
-
- public class Properties extends Hashtable {
- protected Properties defaults;
- private static char[] hexDigit = new char[]{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
-
- public Properties() {
- this((Properties)null);
- }
-
- public Properties(Properties var1) {
- this.defaults = var1;
- }
-
- public synchronized void load(InputStream var1) throws IOException {
- var1 = Runtime.getRuntime().getLocalizedInputStream(var1);
- int var2 = var1.read();
-
- label140:
- while(true) {
- StringBuffer var3;
- switch (var2) {
- case -1:
- return;
- case 9:
- case 10:
- case 13:
- case 32:
- var2 = var1.read();
- continue;
- case 33:
- case 35:
- while(true) {
- var2 = var1.read();
- if (var2 < 0 || var2 == 10 || var2 == 13) {
- continue label140;
- }
- }
- default:
- var3 = new StringBuffer();
- }
-
- while(var2 >= 0 && var2 != 61 && var2 != 58 && var2 != 32 && var2 != 9 && var2 != 10 && var2 != 13) {
- var3.append((char)var2);
- var2 = var1.read();
- }
-
- while(var2 == 32 || var2 == 9) {
- var2 = var1.read();
- }
-
- if (var2 == 61 || var2 == 58) {
- var2 = var1.read();
- }
-
- while(var2 == 32 || var2 == 9) {
- var2 = var1.read();
- }
-
- StringBuffer var4 = new StringBuffer();
-
- label102:
- while(var2 >= 0 && var2 != 10 && var2 != 13) {
- int var5 = 0;
- if (var2 == 92) {
- switch (var2 = var1.read()) {
- case 13:
- if ((var2 = var1.read()) != 10 && var2 != 32 && var2 != 9) {
- continue;
- }
- case 10:
- while(true) {
- while((var2 = var1.read()) == 32) {
- }
-
- if (var2 != 9) {
- continue label102;
- }
- }
- case 110:
- var2 = 10;
- var5 = var1.read();
- break;
- case 114:
- var2 = 13;
- var5 = var1.read();
- break;
- case 116:
- var2 = 9;
- var5 = var1.read();
- break;
- case 117:
- while((var2 = var1.read()) == 117) {
- }
-
- int var6 = 0;
-
- label91:
- for(int var7 = 0; var7 < 4; ++var7) {
- var5 = var1.read();
- switch (var2) {
- case 48:
- case 49:
- case 50:
- case 51:
- case 52:
- case 53:
- case 54:
- case 55:
- case 56:
- case 57:
- var6 = (var6 << 4) + var2 - 48;
- break;
- case 65:
- case 66:
- case 67:
- case 68:
- case 69:
- case 70:
- var6 = (var6 << 4) + 10 + var2 - 65;
- break;
- case 97:
- case 98:
- case 99:
- case 100:
- case 101:
- case 102:
- var6 = (var6 << 4) + 10 + var2 - 97;
- break;
- default:
- break label91;
- }
-
- var2 = var5;
- }
-
- var2 = var6;
- break;
- default:
- var5 = var1.read();
- }
- } else {
- var5 = var1.read();
- }
-
- var4.append((char)var2);
- var2 = var5;
- }
-
- ((Hashtable)this).put(var3.toString(), var4.toString());
- }
- }
-
- public synchronized void save(OutputStream var1, String var2) {
- OutputStream var3 = Runtime.getRuntime().getLocalizedOutputStream(var1);
- PrintStream var4 = new PrintStream(var3, false);
- boolean var5 = var3 != var1;
- if (var2 != null) {
- var4.write(35);
- var4.println(var2);
- }
-
- var4.write(35);
- var4.println(new Date());
- Enumeration var6 = ((Hashtable)this).keys();
-
- while(var6.hasMoreElements()) {
- String var7 = (String)var6.nextElement();
- var4.print(var7);
- var4.write(61);
- String var8 = (String)((Hashtable)this).get(var7);
- int var9 = var8.length();
- boolean var10 = false;
-
- for(int var11 = 0; var11 < var9; ++var11) {
- char var12 = var8.charAt(var11);
- switch (var12) {
- case '\t':
- var4.write(92);
- var4.write(116);
- break;
- case '\n':
- var4.write(92);
- var4.write(110);
- break;
- case '\r':
- var4.write(92);
- var4.write(114);
- break;
- case '\\':
- var4.write(92);
- var4.write(92);
- break;
- default:
- if (var12 < ' ' || var12 >= 127 || var10 && var12 == ' ') {
- if (var12 > 255 && var5) {
- var4.write(var12);
- } else {
- var4.write(92);
- var4.write(117);
- var4.write(toHex(var12 >> 12 & 15));
- var4.write(toHex(var12 >> 8 & 15));
- var4.write(toHex(var12 >> 4 & 15));
- var4.write(toHex(var12 & 15));
- }
- } else {
- var4.write(var12);
- }
- }
-
- var10 = false;
- }
-
- var4.write(10);
- }
-
- }
-
- public String getProperty(String var1) {
- String var2 = (String)super.get(var1);
- return var2 == null && this.defaults != null ? this.defaults.getProperty(var1) : var2;
- }
-
- public String getProperty(String var1, String var2) {
- String var3 = this.getProperty(var1);
- return var3 == null ? var2 : var3;
- }
-
- public Enumeration propertyNames() {
- Hashtable var1 = new Hashtable();
- this.enumerate(var1);
- return var1.keys();
- }
-
- public void list(PrintStream var1) {
- var1.println("-- listing properties --");
- Hashtable var2 = new Hashtable();
- this.enumerate(var2);
-
- String var4;
- String var5;
- for(Enumeration var3 = var2.keys(); var3.hasMoreElements(); var1.println(var4 + "=" + var5)) {
- var4 = (String)var3.nextElement();
- var5 = (String)var2.get(var4);
- if (var5.length() > 40) {
- var5 = var5.substring(0, 37) + "...";
- }
- }
-
- }
-
- public void list(PrintWriter var1) {
- var1.println("-- listing properties --");
- Hashtable var2 = new Hashtable();
- this.enumerate(var2);
-
- String var4;
- String var5;
- for(Enumeration var3 = var2.keys(); var3.hasMoreElements(); var1.println(var4 + "=" + var5)) {
- var4 = (String)var3.nextElement();
- var5 = (String)var2.get(var4);
- if (var5.length() > 40) {
- var5 = var5.substring(0, 37) + "...";
- }
- }
-
- }
-
- private synchronized void enumerate(Hashtable var1) {
- if (this.defaults != null) {
- this.defaults.enumerate(var1);
- }
-
- Enumeration var2 = ((Hashtable)this).keys();
-
- while(var2.hasMoreElements()) {
- String var3 = (String)var2.nextElement();
- var1.put(var3, ((Hashtable)this).get(var3));
- }
-
- }
-
- private static char toHex(int var0) {
- return hexDigit[var0 & 15];
- }
- }
-